const blogModel = require("./model/blogModel");
const messageModel = require("./model/messageModel");
const {Op} = require("sequelize");


// 新增评论或者留言
module.exports.addMessageDao = async function (messageInfo) {
  const {dataValues} = await messageModel.create(messageInfo);
  return dataValues;
}

// 获取评论或者留言
module.exports.findMessageByPageDao = async function (pageInfo) {
  // 这里需要根据blogId来区分情况
  if(pageInfo.blogId) {
    // 获取评论
    if(pageInfo.blogId === 'all') {
      // 返回所有评论
      return await messageModel.findAndCountAll({
        offset: (pageInfo.page * 1 - 1) * pageInfo.limit,
        limit: pageInfo.limit * 1,
        where: {
          blogId: {
            [Op.ne]: null
          }
        },
        include: [
          {
            model: blogModel,
            as: "blog"
          }
        ]
      })
    } else {
      // 返回对应文章的评论
      return await messageModel.findAndCountAll({
        offset: (pageInfo.page * 1 - 1) * pageInfo.limit,
        limit: pageInfo.limit * 1,
        where: {
          blogId: pageInfo.blogId * 1
        },
        order: [
          ["createDate", "DESC"]
        ]
      })
    }
  } else {
    // 获取留言
    return await messageModel.findAndCountAll({
      offset: (pageInfo.page * 1 - 1) * pageInfo.limit,
      limit: pageInfo.limit * 1,
      where: {
        blogId: null
      },
      order: [
        ["createDate", "DESC"]
      ]
    })
  }
}

// 删除留言或者评论 (传入的id是message表的id)
module.exports.deleteMessageDao = async function (id) {
  return await messageModel.destroy({
    where: {
      id,
    }
  })
}

// 删除评论(传入id是message表中的blogId)
module.exports.deleteMessageByBlogIdDao = async function (blogId) {
  return await messageModel.destroy({
    where: {
      blogId,
    }
  })
}